package net.lzzy.arraylist;

public class GenericStack<E> {

    /* E 表示代号，暂时不知道用什么类型，先使用E来占位子，后面在书写对象接替*/
    private java.util.ArrayList<E> list = new java.util.ArrayList<>();

    /* getSize统计这个列表表的总长度*/
    public int getSize(){
        return list.size();
    }

    /* peek表示查出这个列表泛型最后一个内容*/
    public E peek() {
        return list.get(getSize()-1);
    }

    /* push表示添加内容进列表里面*/
    public void push(E o){
        list.add(o);
    }

    /* pop 表示根据getSize查询最后一个内容进行删除，并返回o值*/
    public E pop() {
        E o = list.get(getSize()-1);
        list.remove(getSize()-1);
        return o;
    }

    /* 表示如果里面没有任何元素则显示为“ true”，
        反之如果里面存在元素则显示 “ false ”
    * */
    public boolean isEmpty(){
        return list.isEmpty();
    }

    @Override
    public String toString() {
        return "stack: "+ list.toString();
    }
}
